判断磁盘类型(U盘,硬盘(移动硬盘还是电脑内置硬盘))
// CheckMoveDisk.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//
#include
#include
#include
#include
#include "AsStringUtil.h"
#include
using namespace std;
using namespace Asiafly::Base;
BOOL GetDisksProperty(TCHAR *drive);
bool checkRemoveDisk(vector* drivePath);
int main()
{
vector* drivePath;
checkRemoveDisk(drivePath);
system("pause");
return 0;
}
bool checkRemoveDisk(vector* drivePath) //参数存储所有移动盘的盘符
{
bool flag = false;
DWORD dw = GetLogicalDriveStrings(0, NULL);
LPTSTR lpDriveStrings = (LPTSTR)HeapAlloc(GetProcessHeap(), 0, dw * sizeof(TCHAR));
GetLogicalDriveStrings(dw, lpDriveStrings); //获取盘符,字符串形式。
do
{
UINT drivetype = GetDriveType(lpDriveStrings); //获取驱动器类型
if (drivetype == DRIVE_REMOVABLE)
//驱动器类型为DRIVE_REMOVABLE,进一步获取卷信息,如果获取成功,则将盘符保存。
{
TCHAR szFileSNBuffer[512];
DWORD dwFSystemFlags;
//获取卷信息,如果获取成功,则说明已插入U盘。
if (GetVolumeInformation(lpDriveStrings, NULL, 0, NULL, NULL, &dwFSystemFlags, szFileSNBuffer, 512))
{
//drivePath->push_back(lpDriveStrings);
flag = true;
std::cout |